<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>jssdk</title>
</head>
<body>
    <button id="scan">扫码</button>
    <button id="camera">拍照</button>
    <img id="img" alt="">

    <!-- 引入微信网页开发的JSSDK文件 -->
    <script src="../javascripts/jweixin-1.4.0.js"></script>
    <script src="../javascripts/jquery.js"></script>
    <script>
        console.log('wx为：',wx)

        // 请求后端接口，获取4个参数
        $.ajax({
            url: 'http://xiaobulaoshi.vipgz1.idcfengye.com/wx/jssdk'
        }).then((res) => {
            const {appId,timestamp,nonceStr,signature} = res

            // 先要进行JSSDK的权限配置
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId, // 必填，公众号的唯一标识
                timestamp, // 必填，生成签名的时间戳
                nonceStr, // 必填，生成签名的随机串
                signature,// 必填，签名
                jsApiList: ['scanQRCode','chooseImage'] // 必填，需要使用的JS接口列表
            });      
            
            wx.ready(function(){
                // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中
                console.log('ready')
            })
            
            wx.error(function(res){
                // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名
                console.log('error')
            })            
        })

        $('#scan').on('click',() => {
            console.log('点击扫码')

            // 调起微信的扫码功能
            wx.scanQRCode({
                needResult: 0, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
                scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码，默认二者都有
                success: function (res) {
                    console.log('scanQRCode success')
                    var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
                },
                fail(err){
                    console.log('scanQRCode fail',err)
                }
            });
        })

        $('#camera').on('click',() => {
            console.log('点击拍照')

            // 调起微信的拍照功能
            wx.chooseImage({
                count: 1, // 默认9
                sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
                sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
                success: function (res) {
                    console.log('chooseImage success')
                    var localIds = res.localIds; // 返回选定照片的本地ID列表，localId可以作为img标签的src属性显示图片

                    $('#img').attr('src',localIds)
                }
            });
        })
    </script>
</body>
</html>